<?php
// 1. 读取数据库配置文件内容
$configFile = __DIR__ . '/../../application/database.php';
$configContent = file_get_contents($configFile);

// 2. 使用正则表达式提取配置参数
preg_match("/'hostname'\s*=>\s*Env::get\('database\.hostname',\s*'([^']+)'\)/", $configContent, $hostnameMatch);
preg_match("/'database'\s*=>\s*Env::get\('database\.database',\s*'([^']+)'\)/", $configContent, $databaseMatch);
preg_match("/'username'\s*=>\s*Env::get\('database\.username',\s*'([^']+)'\)/", $configContent, $usernameMatch);
preg_match("/'password'\s*=>\s*Env::get\('database\.password',\s*'([^']+)'\)/", $configContent, $passwordMatch);
preg_match("/'charset'\s*=>\s*'([^']+)'/", $configContent, $charsetMatch);

// 3. 获取配置值（使用默认值如果没有匹配到）
$hostname = isset($hostnameMatch[1]) ? $hostnameMatch[1] : '127.0.0.1';
$database = isset($databaseMatch[1]) ? $databaseMatch[1] : '';
$username = isset($usernameMatch[1]) ? $usernameMatch[1] : '';
$password = isset($passwordMatch[1]) ? $passwordMatch[1] : '';
$charset = isset($charsetMatch[1]) ? $charsetMatch[1] : 'utf8';

// 4. 连接数据库
$dsn = "mysql:host={$hostname};dbname={$database};charset={$charset}";
$pdo = new PDO($dsn, $username, $password);

// 5. 获取“学校管理”一级菜单的id
$sql = "SELECT id FROM fa_auth_rule WHERE title = '学校管理' AND pid = 0 LIMIT 1";
$stmt = $pdo->query($sql);
$schoolMenu = $stmt->fetch(PDO::FETCH_ASSOC);
if (!$schoolMenu) {
    exit('未找到“学校管理”一级菜单');
}
$schoolMenuId = $schoolMenu['id'];

// 6. 要移动的菜单名称
$moveMenus = ['学校列表', '教学点管理', '标签管理', '班级管理'];
$in  = str_repeat('?,', count($moveMenus) - 1) . '?';

// 7. 查询这些菜单的id
$sql = "SELECT id FROM fa_auth_rule WHERE title IN ($in)";
$stmt = $pdo->prepare($sql);
$stmt->execute($moveMenus);
$menuIds = $stmt->fetchAll(PDO::FETCH_COLUMN);

if (empty($menuIds)) {
    exit('未找到需要调整的菜单');
}

// 8. 更新pid到“学校管理”下
$sql = "UPDATE fa_auth_rule SET pid = ? WHERE id IN (" . str_repeat('?,', count($menuIds) - 1) . "?)";
$params = array_merge([$schoolMenuId], $menuIds);
$stmt = $pdo->prepare($sql);
$result = $stmt->execute($params);

if ($result) {
    echo '菜单调整成功！';
} else {
    echo '菜单调整失败！';
}


